#include <Arduino.h>

#define timer1 5
#define mic1 21
#define pause 18
#define delaytime 500

volatile byte state = LOW;   //状态为低电平 

// 声明一个定时器变量
hw_timer_t *timer = NULL;
int interruptCount;
// 定时器中断回调函数
void IRAM_ATTR timer_event()
{
    interruptCount++;
}

void setup() 
{
    Serial.begin(115200);                // 配置串口

    pinMode(timer1,INPUT);
    pinMode(pause,OUTPUT);
    pinMode(mic1,INPUT);
    
    timer = timerBegin(0,8,true);            // 配置定时器 这里使用的是定时器0(一共四个0123) 
                              // 80是这个定时器的分频系数 由于定时器基频是80Mhz 
                              // 这里设置80 就是1Mhz 就能保证定时器1us记录一次 
                              // true表面该定时器向上计数
    
    timerAttachInterrupt(timer,&timer_event,true);    // 配置定时器的中断函数 true表示边沿触发
    
    timerAlarmWrite(timer,10,true);        // 设置定时器的报警值 当计时器计数值达到1000000时触发中断                              // true表示重加载
    
    timerAlarmEnable(timer);              // 使能定时器报警
//      pinMode(timer1, INPUT_PULLUP);//将中断的引脚设置为输入PULLUP模式
  attachInterrupt(digitalPinToInterrupt(mic1), blink, RISING );  //设置触发中断的模式和中断服务函数
//  attachInterrupt(digitalPinToInterrupt(mic1), m1, RISING );  //设置触发中断的模式和中断服务函数
  digitalWrite(timer1,HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(pause,state);

}

  void blink() {
  state = digitalRead(timer1);
//  digitalWrite(ledPin, state);
  
  Serial.println(interruptCount);
  interruptCount = 0;
//  Serial.println()
//  Serial.println("interrupt ing...");

  Serial.print("timer1 = ");
  Serial.println(state);
//  Serial.print("timer1 = ");
//  Serial.println(state);
  
}
//  void m1() {
//  state = digitalRead(timer1);
////  digitalWrite(ledPin, state);
//  
//  Serial.println(interruptCount);
//  interruptCount = 0;
////  Serial.println()
////  Serial.println("interrupt ing...");
//
//  Serial.print("timer1 = ");
//  Serial.println(state);
////  Serial.print("timer1 = ");
////  Serial.println(state);
//  
//}
